package nc.itf.pub.dbservice;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;

import nc.vo.pub.SuperVO;
import nccloud.bs.log.LogVO;

/**
 * 操作数据库的接口
 * @author wy
 * @date 2023年4月10日
 */
public interface IDBService {

	int updateSql(String sql);

	int updateVO(SuperVO vo);

	int updateVOArray(SuperVO[] vos);

	@SuppressWarnings("rawtypes")
    void updateVOList(List listvo);

	String insertVO(SuperVO vo);

	String[] insertVOArray(SuperVO[] vos);

	@SuppressWarnings("rawtypes")
    String[] insertVOList(List listvo);
	
	/** 单独事务新增 
	 * @throws Exception */
    String[] insertVOArray_RequiresNew(SuperVO[] vos) throws Exception;
	
	/** 单独事务更新
	 * @throws Exception */
    int updateSql_RequiresNew(String sql) throws Exception;
	
	/** 单独事务更新
	 * @throws Exception */
	@SuppressWarnings("rawtypes")
    void updateVOList_RequiresNew(List listvo) throws Exception;
	
	/**
	   * 构建日志vo
	 * @param map同步的map数据
	 * @param json 请求参数
	 * @param System_flag  三方系统标识
	 * @param pk_billtypeid 单据类型
	 * @throws Exception
	 */
    LogVO buildLogVO(Map<String, Object> map, JSONObject json, String System_flag, String pk_billtypeid) throws Exception;

}
